package md.lanjing.com.module_mine.api;



import md.lanjing.com.module_mine.bean.InviteFriendRequest;
import md.lanjing.com.module_mine.bean.InviteFriendResponce;
import md.lanjing.com.module_mine.bean.ModifyDealPwdRequest;
import md.lanjing.com.module_mine.bean.ModifyDealPwdSecurityCodeResponse;
import md.lanjing.com.module_mine.bean.PurseAddressRequest;
import md.lanjing.com.module_mine.bean.RegisterSecurityCodeRequest;
import md.lanjing.com.module_mine.bean.UpReceiveMoneyTypeResponce;
import md.lanjing.com.module_mine.bean.DealCenterNacVacancyResponce;
import md.lanjing.com.module_mine.bean.ModifyDealPwdResponse;
import md.lanjing.com.module_mine.bean.ModifyLoginPwdRequest;
import md.lanjing.com.module_mine.bean.ModifyLoginPwdResponse;
import md.lanjing.com.module_mine.bean.MyDownPersonResopnce;
import md.lanjing.com.module_mine.bean.PurseAddressResponce;
import md.lanjing.com.module_mine.bean.RealNameAuthenticationRequest;
import md.lanjing.com.module_mine.bean.RealNameAuthenticationResponse;
import md.lanjing.com.module_mine.bean.UpReceiveMoneyAliRequest;
import md.lanjing.com.module_mine.bean.UpReceiveMoneyBankRequest;
import md.lanjing.com.module_mine.bean.UpReceiveMoneyTypeRequest;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.POST;

public interface MineApiService {
    @Headers({
            "Content-Type: application/json",
            "Accept: application/json",
    })


    /**
     * 修改登录密码
     * @param request
     * @return
     */
    @POST("user/updateLoginPassword")
    Call<ModifyLoginPwdResponse>modifyLoginPwd(@Body ModifyLoginPwdRequest request);

    /**
     * 实名认证
     *
     * @param request
     * @return
     */
    @POST("user/authentication")
    Call<RealNameAuthenticationResponse>realNameAuthenticated(@Body RealNameAuthenticationRequest request);

    /**
     * 修改交易密码获取验证码
     * @return
     */
    @POST("user/sendCode")
    Call<ModifyDealPwdSecurityCodeResponse> getModifyDealPwdSecurityCode(@Body RegisterSecurityCodeRequest request);

    /**
     * 修改交易密码
     * @param request
     * @return
     */
    @POST("user/updateDealPassword")
    Call<ModifyDealPwdResponse> modifyDealPwd(@Body ModifyDealPwdRequest request);


    /**
     * 绑定钱包地址
     * @param request
     * @return
     */
    @POST("userAssets/updateReceiveAddress")
    Call<PurseAddressResponce> bindPurseAddress(@Body PurseAddressRequest request);

    /**
     * 上传微信收款码
     * @param request
     * @return
     */
    @POST("userAssets/updateWeChatQRCode")
    Call<UpReceiveMoneyTypeResponce> upReceiveWeixinCode(@Body UpReceiveMoneyTypeRequest request);

    /**
     * 支付宝
     * @param request
     * @return
     */
    @POST("userAssets/updateAliPayQRCode")
    Call<UpReceiveMoneyTypeResponce> upReceiveAliCode(@Body UpReceiveMoneyAliRequest request);

    /**
     * 上传银行卡号
     * @param request
     * @return
     */
    @POST("userAssets/updateBankCard")
    Call<UpReceiveMoneyTypeResponce> upReceiveBankCard(@Body UpReceiveMoneyBankRequest request);


    /**
     * 查询下线
     * @param userId
     * @return
     */
    @FormUrlEncoded
    @POST("user/findSubordinateCount")
    Call<MyDownPersonResopnce> queryDownLine(@Field("userId") int userId);

    /**
     * 下线详情
     * @param request
     * @return
     */
    @POST("user/findSubordinate")
    Call<InviteFriendResponce> queryDownDetail(@Body InviteFriendRequest request);

    /**
     * 交易中心-获取资产
     * @param userId
     * @return
     */
    @FormUrlEncoded
    @POST("userAssets/findMyAssets")
    Call<DealCenterNacVacancyResponce> getNacVaCancy(@Field("userId") int userId);

}
